#ifndef _TANK_H
#define _TANK_H


#include "TankBody.h"
#include "BaseComponent.h"
#include <boost/shared_ptr.hpp>

class Tank {
  public:
    Tank(const _TankBody & body);

    virtual ~Tank(void );


  private:
    _TankBody _body;


  public:
    _TankBody& GetBody();

    //Places tank in given position in world.
    void MoveTo(const BaseComponent::point & position);

    //Sets given angle where 0 is top.
    void RotateTo(float angle);

    //Rotates turret of the tank.
    void RotateTurretTo(char slot, float angle);

    //Draws the tank.
    void Draw();


  private:
    //position of the tank in the world
    BaseComponent::point _position;

    float _angle;

};
typedef boost::shared_ptr<Tank> _Tank;
#endif
